// pages/query/scan-query.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    queryType: '', // 查询类型：registration-登记查询，family-亲友查询
    queryContent: '', // 查询内容
    queryResult: null, // 查询结果
    isScanning: false // 是否正在扫码
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const { queryType, queryContent, verified } = options;
    this.setData({
      queryType: queryType || 'registration',
      queryContent: queryContent || '',
      verified: verified === 'true'
    });
    
    // 设置页面标题
    wx.setNavigationBarTitle({
      title: '扫码查询'
    });
  },

  /**
   * 开始扫码
   */
  startScan() {
    this.setData({
      isScanning: true
    });

    wx.scanCode({
      success: (res) => {
        console.log('扫码结果：', res);
        this.setData({
          isScanning: false
        });
        // 处理扫码结果
        this.handleScanResult(res.result);
      },
      fail: (err) => {
        console.error('扫码失败：', err);
        this.setData({
          isScanning: false
        });
        wx.showToast({
          title: '扫码失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 处理扫码结果
   */
  handleScanResult(result) {
    // 解析扫码结果并执行查询
    try {
      const data = JSON.parse(result);
      // 根据扫码数据执行查询
      this.executeQueryByScanData(data);
    } catch (error) {
      wx.showToast({
        title: '无效的二维码',
        icon: 'none'
      });
    }
  },

  /**
   * 根据扫码数据执行查询
   */
  executeQueryByScanData(data) {
    // 模拟根据扫码数据查询
    wx.showLoading({
      title: '查询中...',
      mask: true
    });

    setTimeout(() => {
      wx.hideLoading();
      
      const result = {
        title: '扫码查询结果',
        status: 'success',
        statusText: '查询成功',
        details: [
          { key: 'scanId', label: '扫码ID', value: data.id || '未知' },
          { key: 'scanType', label: '查询类型', value: data.type || '未知' },
          { key: 'scanTime', label: '扫码时间', value: new Date().toLocaleString() },
          { key: 'queryContent', label: '查询内容', value: this.getContentName(this.data.queryContent) }
        ]
      };
      
      this.setData({
        queryResult: result
      });

      // 滚动到结果区域
      wx.pageScrollTo({
        selector: '.result-section',
        duration: 300
      });
    }, 1500);
  },

  /**
   * 获取内容名称
   */
  getContentName(content) {
    const nameMap = {
      'volunteer': '志愿者证',
      'registration': '登记表',
      'progress': '捐献进度',
      'donation': '捐赠编号',
      'body': '遗体管理情况'
    };
    return nameMap[content] || '未知';
  },

  /**
   * 下载查询结果
   */
  downloadResult() {
    wx.showToast({
      title: '下载功能开发中',
      icon: 'none'
    });
  },

  /**
   * 分享查询结果
   */
  shareResult() {
    wx.showShareMenu({
      withShareTicket: true,
      menus: ['shareAppMessage', 'shareTimeline']
    });
  },

  /**
   * 返回上一页
   */
  goBack() {
    wx.navigateBack();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '器官捐献信息查询',
      path: '/pages/query/query',
      imageUrl: '/images/share-cover.png'
    };
  }
})
